package org.wdcode.shop.action.product;

import java.io.File;

import org.wdcode.common.constants.ImageConstants;
import org.wdcode.common.constants.StringConstants;
import org.wdcode.common.exception.CustomException;
import org.wdcode.common.io.FileUtil;
import org.wdcode.common.util.DateUtil;
import org.wdcode.shop.action.BaseShopHelperAdviceAction;
import org.wdcode.shop.config.WdShopParams;
import org.wdcode.shop.po.ProductInfo;
import org.wdcode.shop.service.ProductInfoService;

/**
 * 产品操作Action
 * @author WD
 * @since JDK6
 * @version 1.0 2009-10-22
 */
public class ProductInfoAction extends BaseShopHelperAdviceAction<ProductInfoService, ProductInfo> {
	// 序列化 ID
	private static final long	serialVersionUID	= 4148554245861704801L;
	// 产品图片
	private File				photo;

	/**
	 * 添加产品
	 */
	@Override
	public String add() throws Exception {
		// 上传文件
		getEntity().setPhoto(upload(photo));
		// 创建时间
		getEntity().setCreateDate(DateUtil.getTime());
		// 调用父方法
		return super.add();
	}

	/**
	 * 修改产品
	 */
	@Override
	public String edit() throws Exception {
		// 上传文件
		getEntity().setPhoto(upload(photo));
		// 调用父方法
		return super.edit();
	}

	/**
	 * 获得产品图片
	 * @return 产品图片
	 */
	public File getPhoto() {
		return photo;
	}

	/**
	 * 设置产品图片
	 * @param photo 产品图片
	 */
	public void setPhoto(File photo) {
		this.photo = photo;
	}

	/**
	 * 上传文件
	 * @param path 上传路径
	 * @param file 上传文件
	 * @return 路径
	 * @throws CustomException 上传失败
	 */
	private String upload(File file) throws CustomException {
		String path = WdShopParams.getProductPhotoPath() + getEntity().getCode() + StringConstants.POINT + ImageConstants.JPG;
		// 写入文件
		FileUtil.write(getRealPath(path), file);
		// 返回路径
		return path;
	}
}
